package test15;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Writer;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Properties;

/**
 * 4. 已知一个类，定义如下：
 package com.itheima;
 public class DemoClass {
 public void run() {
 System.out.println("welcome to heima!");
 }
 }
 (1)写一个Properties格式的配置文件，配置类的完整名称。
 (2) 写一个程序，读取这个Properties配置文件，获得类的完整名称并加载这个类，
 (3)用反射 的方式运行run方法。
 */
public class Test3 {
    public static void main(String[] args) throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
        Properties properties = new Properties();
        properties.load(new FileReader("D:\\IdeaProjects\\Job-code\\workTest\\src\\test15\\propClass.properties"));
        String className = properties.getProperty("ClassName");

        Class clazz = Class.forName(className);

        DemoClass demoClass = (DemoClass) clazz.newInstance();
        Method run = clazz.getDeclaredMethod("run");
        run.setAccessible(true);
        run.invoke(demoClass);

    }
}
